﻿//PlazaMcxSecuritiesColumns.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Plaza.Metadata
{
	using System;

	/// <summary>
	/// Колонки таблицы, содержащей финансовые инструменты.
	/// MCXSPOT_MDTRADE_REPL - таблица SECURITIES.
	/// MCXCC_MDTRADE_REPL - таблица SECURITIES.
	/// </summary>
	public abstract class PlazaMcxSecuritiesColumns : PlazaColumns
	{
		internal PlazaMcxSecuritiesColumns(string tableId)
			: base(tableId)
		{
			SecBoard = new PlazaColumn(TableId, "SECBOARD", "c4");
			SecCode = new PlazaColumn(TableId, "SECCODE", "c12");
			SecName = new PlazaColumn(TableId, "SECNAME", "c30");
			Remarks = new PlazaColumn(TableId, "REMARKS", "c8", false);
			ShortName = new PlazaColumn(TableId, "SHORTNAME", "c10");
			Status = new PlazaColumn(TableId, "STATUS", "c1");
			TradingStatus = new PlazaColumn(TableId, "TRADINGSTATUS", "c1", false);
			MarketCode = new PlazaColumn(TableId, "MARKETCODE", "c4", false);
			InstrId = new PlazaColumn(TableId, "INSTRID", "c4", false);
			LotSize = new PlazaColumn(TableId, "LOTSIZE", typeof(int));
			MinStep = new PlazaColumn(TableId, "MINSTEP", "d16.6");
			FaceValue = new PlazaColumn(TableId, "FACEVALUE", "d16.6", false);
			FaceUnit = new PlazaColumn(TableId, "FACEUNIT", "c4", false);
			PrevDate = new PlazaColumn(TableId, "PREVDATE", typeof(DateTime), false);
			PrevPrice = new PlazaColumn(TableId, "PREVPRICE", "d16.6");
			Decimals = new PlazaColumn(TableId, "DECIMALS", typeof(int));
			Yield = new PlazaColumn(TableId, "YIELD", "d16.2", false);
			AccruedInt = new PlazaColumn(TableId, "ACCRUEDINT", "d16.6", false);
			PrimaryDist = new PlazaColumn(TableId, "PRIMARYDIST", "c1", false);
			MatDate = new PlazaColumn(TableId, "MATDATE", typeof(DateTime));
			CouponValue = new PlazaColumn(TableId, "COUPONVALUE", "d16.2", false);
			CouponPeriod = new PlazaColumn(TableId, "COUPONPERIOD", typeof(int), false);
			NextCoupon = new PlazaColumn(TableId, "NEXTCOUPON", typeof(DateTime), false);
			IssueSize = new PlazaColumn(TableId, "ISSUESIZE", typeof(long), false);
			PrevWaPrice = new PlazaColumn(TableId, "PREVWAPRICE", "d16.6", false);
			YieldAtPrevWaPrice = new PlazaColumn(TableId, "YIELDATPREVWAPRICE", "d16.2", false);
			Repo2Price = new PlazaColumn(TableId, "REPO2PRICE", "d16.6", false);
			CurrencyId = new PlazaColumn(TableId, "CURRENCYID", "c4", false);
			BuyBackPrice = new PlazaColumn(TableId, "BUYBACKPRICE", "d16.6", false);
			BuyBackDate = new PlazaColumn(TableId, "BUYBACKDATE", typeof(DateTime), false);
			AgentId = new PlazaColumn(TableId, "AGENTID", "c12", false);
			QuoteBasis = new PlazaColumn(TableId, "QUOTEBASIS", "c1", false);
			Isin = new PlazaColumn(TableId, "ISIN", "c12", false);
			LatName = new PlazaColumn(TableId, "LATNAME", "c30", false);
			RegNumber = new PlazaColumn(TableId, "REGNUMBER", "c20", false);
			PrevLegalClosePrice = new PlazaColumn(TableId, "PREVLEGALCLOSEPRICE", "d16.6", false);
			PrevAdmittedQuote = new PlazaColumn(TableId, "PREVADMITTEDQUOTE", "d16.6", false);
			SecType = new PlazaColumn(TableId, "SECTYPE", "c1", false);
		}

		/// <summary>
		/// Идентификатор режима торгов для финансового инструмента.
		/// </summary>
		public readonly PlazaColumn SecBoard;

		/// <summary>
		/// Идентификатор финансового инструмента.
		/// </summary>
		public readonly PlazaColumn SecCode;

		/// <summary>
		/// Наименование финансового инструмента.
		/// </summary>
		public readonly PlazaColumn SecName;

		/// <summary>
		/// Примечание.
		/// </summary>
		public readonly PlazaColumn Remarks;

		/// <summary>
		/// Инструмент.
		/// </summary>
		public readonly PlazaColumn ShortName;

		/// <summary>
		/// Индикатор "торговые операции разрешены/запрещены".
		/// </summary>
		public readonly PlazaColumn Status;

		/// <summary>
		/// Индикатор состояния торговой сессии по инструменту.
		/// </summary>
		public readonly PlazaColumn TradingStatus;

		/// <summary>
		/// Идентификатор рынка на котором торгуется финансовый инструмент.
		/// </summary>
		public readonly PlazaColumn MarketCode;

		/// <summary>
		/// Идентификатор группы инструментов.
		/// </summary>
		public readonly PlazaColumn InstrId;

		/// <summary>
		/// Количество ценных бумаг в одном стандартном лоте.
		/// </summary>
		public readonly PlazaColumn LotSize;

		/// <summary>
		/// Минимально возможная разница между ценами, указанными в заявках на покупку/продажу ценных бумаг.
		/// </summary>
		public readonly PlazaColumn MinStep;

		/// <summary>
		/// Номинальная стоимость одной ценной бумаги, в валюте инструмента.
		/// </summary>
		public readonly PlazaColumn FaceValue;

		/// <summary>
		/// Код валюты, в которой выражен номинал ценной бумаги.
		/// </summary>
		public readonly PlazaColumn FaceUnit;

		/// <summary>
		/// Дата предыдущего торгового дня.
		/// </summary>
		public readonly PlazaColumn PrevDate;

		/// <summary>
		/// Цена последней сделки предыдущего торгового дня.
		/// </summary>
		public readonly PlazaColumn PrevPrice;

		/// <summary>
		/// Количество десятичных знаков дробной части числа.
		/// </summary>
		/// <remarks>
		/// Используется для форматирования значений полей с типом PRICE.
		/// </remarks>
		public readonly PlazaColumn Decimals;

		/// <summary>
		/// Доходность, рассчитанная по цене сделки.
		/// </summary>
		public readonly PlazaColumn Yield;

		/// <summary>
		/// Накопленный купонный доход на дату торгов в расчете на одну бумагу, выраженный в руб.
		/// </summary>
		public readonly PlazaColumn AccruedInt;

		/// <summary>
		/// Индикатор информирующий, что по данному инструменту проводится аукцион.
		/// </summary>
		public readonly PlazaColumn PrimaryDist;

		/// <summary>
		/// Дата погашения.
		/// </summary>
		public readonly PlazaColumn MatDate;

		/// <summary>
		/// Величина купона, выраженная в руб.
		/// </summary>
		public readonly PlazaColumn CouponValue;

		/// <summary>
		/// Длительность купона, выраженная в днях.
		/// </summary>
		public readonly PlazaColumn CouponPeriod;

		/// <summary>
		/// Дата окончания купона.
		/// </summary>
		public readonly PlazaColumn NextCoupon;

		/// <summary>
		/// Объем выпуска.
		/// </summary>
		public readonly PlazaColumn IssueSize;

		/// <summary>
		/// Значение оценки (WAPRICE) предыдущего торгового дня.
		/// </summary>
		public readonly PlazaColumn PrevWaPrice;

		/// <summary>
		/// Доходность по оценке предыдущего торгового дня.
		/// </summary>
		public readonly PlazaColumn YieldAtPrevWaPrice;

		/// <summary>
		/// Цена второй части РЕПО.
		/// </summary>
		/// <remarks>
		/// Не используется. Устаревшее.
		/// </remarks>
		public readonly PlazaColumn Repo2Price;

		/// <summary>
		/// Код сопряженной валюты ценной бумаги, т.е. идентификатор валюты, в которой она торгуется.
		/// </summary>
		public readonly PlazaColumn CurrencyId;

		/// <summary>
		/// Цена досрочного выкупа облигации, заполняется если бумага предусматривает досрочный выкуп (до погашения). Если указана, то расчет доходности производится по этой цене (в качестве цены погашения).
		/// </summary>
		/// <remarks>
		/// При заполнении BUYBACKPRICE обязательно заполняется поле BUYBACKDATE.
		/// </remarks>
		public readonly PlazaColumn BuyBackPrice;

		/// <summary>
		/// Дата досрочного выкупа облигации, заполняется если бумага предусматривает досрочный выкуп (до погашения).
		/// </summary>
		/// <remarks>
		/// Если указана, то расчет доходности производится с успользованием этой даты, в качестве даты погашения.
		/// </remarks>
		public readonly PlazaColumn BuyBackDate;

		/// <summary>
		/// Идентификатор фирмы - агента по размещению.
		/// </summary>
		public readonly PlazaColumn AgentId;

		/// <summary>
		/// Тип цены.
		/// </summary>
		public readonly PlazaColumn QuoteBasis;

		/// <summary>
		/// Международный идентификационный код ценной бумаги.
		/// </summary>
		public readonly PlazaColumn Isin;

		/// <summary>
		/// Наименование финансового инструмента на английском языке.
		/// </summary>
		public readonly PlazaColumn LatName;

		/// <summary>
		/// Номер государственной регистрации.
		/// </summary>
		public readonly PlazaColumn RegNumber;

		/// <summary>
		/// Официальная цена закрытия предыдущего дня, рассчитываемая по методике ФСФР как средневзвешенная цена сделок за последние 10 минут торговой сессии, включая сделки послеторгового периода.
		/// </summary>
		public readonly PlazaColumn PrevLegalClosePrice;

		/// <summary>
		/// Признаваемая котировка предыдущего дня, цена за одну ценную бумагу.
		/// </summary>
		public readonly PlazaColumn PrevAdmittedQuote;

		/// <summary>
		/// Тип ценной бумаги.
		/// </summary>
		public readonly PlazaColumn SecType;
	}
}
